昨天(事有蹊蹺)的小題,
不知道大家有試著做做看嗎?
我們要JOIN的是
[Production].[Product]和[Sales].[SalesOrderDetail],
JOIN之前,我們先找出他們之間的關聯如下:
在這邊可以發現:兩張表並沒有「鍵」互相關聯,
只有一個相同的欄位ProductID,
這樣的話該怎麼辦?
這樣還能JOIN嗎?
答案是確認兩個欄位是記錄一樣的事情.
不只是「同名同姓不同意義」的話,
就可以JOIN喔!
來試試看吧,我的語法是
SELECT
P.ProductID , S.ProductID, *
FROM [Production].[Product] as P
FULL JOIN [Sales].[SalesOrderDetail] as S
ON P.ProductID = S.ProductID
習慣上,
我會暫時先用"FULL JOIN"可以看到全部的情況,
之後再根據需要的資料修改JOIN的範圍。
不知道有沒有人跟我一樣呢?
(如果大神們有更好的作法,歡迎指教!!)
並將兩表的ProductID先呈現出來,
重複確認兩欄位的值是否一致。
得到的結果:
這樣一來,我們可以看出一些訊息:
例如,
有些產品只有在[Production].[Product]表中有紀錄,
在[Sales].[SalesOrderDetail]表的值皆為空值,
我們便能由此得知:
這些商品「從來沒有」被訂購過。(嗚嗚滯銷)
這樣的「訊息解讀」
也是我工作前期覺得最困難的地方,
可能銷售部門會要你整理出一份「滯銷商品」報表,
讓他們規劃促銷活動。
這時候我就要將「他的報表條件」翻譯成「以上的語法」,
撈出資料,才能產出報表。
我們的JOIN段落大致就到今天結束了,
可以擺脫JOIN了(嗎?)
明天再來揭曉吧~